<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>javaScript-02数据类型</title>
</head>
<body>
    <script>
        // 变量
        var a = 100,
            b = "hello",
            c = true,
            d ;
        // 打印结果
        console.log(a); 
        console.log(b); 
        console.log(c); 
        console.log(d); 

        console.log("---------数据类型检测-----------");
        // typeof 操作符 ，typeof()  ，括号可以使用或者不使用  
        console.log(typeof(a)); 
        console.log(typeof a); 
        console.log(typeof b); 

        // js是一种动态类型语言，变量的类型是根据内部的数据而确定的，数据类型会根据内容的变化而变换

        console.log("---------数据类型根据值的变化而变化-----------");
        var e;
        console.log(e); 
        console.log("当e的值为" + e + "时，数据类型为：" + typeof e); 
        e = 100;
        console.log(e); 
        console.log("当e的值为" + e + "时，数据类型为：" + typeof e); 
        e = "hello";
        console.log(e); 
        console.log("当e的值为" + e + "时，数据类型为：" + typeof e); 
        e = false;
        console.log(e); 
        console.log("当e的值为" + e + "时，数据类型为：" + typeof e); 

        // 数据类型转换
        console.log("---------数据类型转换-----------");
        var f = 101;
        console.log(f); 
        console.log(typeof f); 

        f1 = f + 11;
        console.log(f1); 
        console.log(typeof f1); 
        // 数字转字符串
        console.log("---------数字转字符串-----------");
        f = f + " ";
        console.log(f); 
        console.log(typeof f); 

        f = f + "123";
        console.log(f); 
        console.log(typeof f);

        f = f + "你好";
        console.log(f); 
        console.log(typeof f);

         // 字符串转数字 parseInt() 和 parseFloat();
         console.log("---------字符串转数字-----------");
        var g = "123.123";
        console.log(g); 
        console.log(typeof g); 

        g1 = parseInt(g);
        console.log(g1); 
        console.log(typeof g1); 
        g2 = parseFloat(g);
        console.log(g2); 
        console.log(typeof g2); 

        // 取整
        console.log("---------取整-----------");
        console.log(parseInt("100"),typeof parseInt("100"));
        console.log(parseInt("123.456"),typeof parseInt("123.456"));
        console.log(parseInt("123aaa456"),typeof parseInt("123aaa456"));
        console.log(parseInt("c123aaa456"),typeof parseInt("c123aaa456"));
        
        // 小数处理
        console.log("---------小数处理-----------");
        console.log(parseFloat("1.23"));
        console.log(parseFloat("1.23.456"));
        console.log(parseFloat("1.23abc"));
        console.log(parseFloat("abc1.23abc"));

        // + 加号可以将字符串转换成数字（隐形转换）
        console.log(+10);

        // -0
        var h = "123";
        console.log(h + 10);
        console.log(h - 0 + 10);
        h1 = h-0;
        console.log(typeof h1); 


        // 加号出现在字符串前面，会将字符串转成数字
        var i = "123",  
            i1 = "123.456";
            i2 = "123.456.789"
        console.log(i,+i,typeof +i); 
        console.log(i1,+i1,typeof +i1); 

        // 注意 + 加号只能装换正确的数字（只有一个小数点）
        console.log(i2,+i2,typeof +i2); 

    </script>
    







   
    </script>
</body>
</html>